package com.smedi.ismedi.inmail.core.port.adapter.service;

import com.smedi.ismedi.constructionproject.api.dto.response.ProjectBasicResponse;
import com.smedi.ismedi.constructionproject.api.dto.response.resp.ProjectAssignmentResp;
import com.smedi.ismedi.inmail.core.domain.aggregatemodel.announcement.Receiver;
import com.smedi.ismedi.inmail.core.domain.dto.ProjectAssignmentListQuery;

import java.util.List;

/**
 * 远程项目接口
 *
 * @author jiangqinxuan
 * @date 2021/07/27
 */
public interface ProjectAssignmentRemoteApiService {
    /**
     * 通过项目id列表查询接收者
     *
     * @param projectIdList 项目id列表
     * @param internal 限内部
     * @param  receiverOrganizationList
     * @return List<Long>
     */
    List<Receiver> queryReceiverIdListByProjectIdList(List<Long> projectIdList,List<Long> receiverIdListByOrganizationList,List<Receiver> receiverOrganizationList, Boolean internal);
    /**
     * 通过组织id列表查询接收者
     *
     * @param organizationIdList 项目id列表
     * @param internal 限内部
     * @return List<Long>
     */
    List<Long> queryReceiverIdListByOrganizationIdList(List<Long> organizationIdList,Boolean internal);

    List<Receiver> queryReceiverByOrganizationIdList(List<Long> organizationIdList);

    List<ProjectBasicResponse> queryAllProjectList();

    List<ProjectAssignmentResp> getProjectAssignmentList(ProjectAssignmentListQuery projectAssignmentListQuery);
}
